【精选】MySQL数据类型 您所在的位置:网站首页 数据库int 长度 【精选】MySQL数据类型

【精选】MySQL数据类型

2023-11-18 07:59| 来源: 网络整理| 查看: 265

MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。

MySQL支持多种类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,所需的存储空间也会越大。大致可以分为四类:数值、日期/时间、字符串(字符)和二进制类型。

数值类型

MySQL支持所有标准SQL数值数据类型。整数类型、浮点数类型和定点数类型

整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT浮点数类型包括 FLOAT 和 DOUBLE定点数类型为 DECIMAL。 整数类型

整数类型又称数值型数据,数值型数据类型主要用来存储数字。其属性字段可以添加 AUTO_INCREMENT自增约束条件。

小数类型(浮点数和定点数型类型) 不论是定点类型还是浮点类型,如果插入值的精度超出实际定义的精度范围,系统会自动进行四舍五入处理,使值的精度达到要求浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围;缺点是会引起精度问题,所以尽量避免做浮点数比较。 浮点数型类型 浮点类型有两种,分别是单精度浮点数(FLOAT)和双精度浮点数(DOUBLE);浮点类型和定点类型都可以用**(M, D)来表示,其中M称为精度,表示总共的位数(小数点"."不占位数);D称为标度,表示小数的位数**。如:float(6,2)的含义数据是float型,数据长度是6,小数点后保留2位。所以,1234.56是符合要求的浮点数类型的取值范围为 M(1~255)和 D(1~30,且不能大于 M-2),分别表示显示宽度和小数位数。M 和 D 在 FLOAT 和DOUBLE 中是可选的,FLOAT 和 DOUBLE 类型将被保存为硬件所支持的最大精度。FLOAT 和 DOUBLE 在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定)建议在定义浮点数时,如果不是实际情况需要,最好不要使用指定小数精度的方法,如果使用了,可能会影响数据库的迁移 定点数型类型 定点类型只有一种,就是 DECIMALDECIMAL 如果不指定精度,默认 D 值为 0、M 值为 10,即(10,0),就是认为是整数,默认情况下也就是表示整数,插入小数的话小数部分会被舍弃掉DECIMAL 类型不同于 FLOAT 和 DOUBLE。DECIMAL实际上是以字符串的形式存放的,DECIMAL 可能的最大取值范围与 DOUBLE 相同,但是有效的取值范围由 M 和 D 决定。如果改变 M 而固定 D,则取值范围将随 M 的变大而变大,占用 M+2 个字节。如果要对数据的精度要求比较高,如货币、科学数据等,还是选择定点数DECIMAL类型l比较安全 总览表 类型类型名称大小范围(有符号)范围(无符号)unsigned 非负数用途整数类型TINYINT1 bytes(-128,127)(0,255)很小的整数整数类型SMALLINT2 bytes(-32 768,32 767)(0,65 535)小的整数整数类型MEDIUMINT3 bytes(-8 388 608,8 388 607)(0,16 777 215)中等大小的整数整数类型INT或INTEGER4 bytes(-2 147 483 648,2 147 483 647)(0,4 294 967 295)普通大小的整数整数类型BIGINT8 bytes(-9,223,372,036,854,775,808,9 223 372 036 854 775 807)(0,18 446 744 073 709 551 615)极大整数值浮点数类型FLOAT4 bytes(-3.402823466E+38,-1.175494351E-38)0 和 (1.175494351E-38,3.402823466E+38)单精度、浮点数值浮点数类型DOUBLE8 bytes(-1.7976931348623157E+308,-2.2250738585072014E-308)0 和 (2.2250738585072014E-308,1.7976931348623157E+308)双精度、浮点数值定点书类型DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值,同DOUBLE型依赖于M和D的值,同DOUBLE型小数值

显示宽度和数据类型的取值范围是无关的。显示宽度只是指明 MySQL 最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充。如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。例如,year 字段插入 19999,当使用 SELECT 查询该列值的时候,MySQL 显示的将是完整的带有 5 位数字的 19999,而不是 4 位数字的值。

其他整型数据类型也可以在定义表结构时指定所需的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值。

不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此应根据实际需要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有